var socket = io.connect('http://localhost:3000');
// 定义用户名和头像
let username;
let avatar;

// 选择头像事件
$('.avatrs .avatr').click(function () {
    $(this).addClass('active').siblings().removeClass('active');
})

// 点击登录
$('.goChat').click(function () {
    // 获取用户名
    const username = $('.login_name').val().trim();
    if (username === '') {
        alert('请输入用户名！');
        return;
    }
    // 获取头像
    let avatar = $('.avatrs .active').css('background-image').split("\"")[1];
    avatar = avatar.slice(22);
    avatar = './' + avatar;
    socket.emit('login', {
        username,
        avatar
    });
})

// 登录失败
socket.on('loginError', (data) => {
    alert(data.message)
})

// 登录成功
socket.on('loginSuccess', (data) => {
    $('.login').css('display', 'none')
    $('.out').css('display', 'flex')
    // 设置自己的头像和用户名
    $('.left .top .avatr').css('background-image', 'url("' + data.avatar + '")');
    $('.loginSucc_name').text(data.username);
    // 将全局的username和avatar重新赋值
    username = data.username;
    avatar = data.avatar;
})

// 设置加入聊天的信息
socket.on('addUser', (data) => {
    const message = ` <div class="message">"${data.username}"  加入了群聊</div>`;
    $('.chat').append(message);
})

// 设置用户列表刷新
socket.on('updateList', (data) => {
    // 先清空列表再遍历，防止用户列表出现重复用户
    $('.list').html('');
    // 设置总列表用户
    data.forEach(item => {
        let child = ` <li>
                    <div class="avatr" style="background-image: url('${item.avatar}'); background-size: cover;"></div>
                    <span> &nbsp;${item.username}</span>
                     </li>`;
        $('.list').append(child);
    });
    // 设置聊天室总人数
    $('.right_top').text(`聊天室(${data.length})`);
})

// 设置退出聊天事件
socket.on('loginOut', (data) => {
    console.log(data);
    // 设置加入聊天的信息
    const message = ` <div class="message">"${data.username}"  退出了群聊</div>`;
    $('.chat').append(message);
})

// 设置发送信息事件
$('.send').click(function () {
    // 获取消息
    const content = $('.message_content').val().trim();
    if (content == '') {
        alert('发送的消息不能为空！');
        return;
    }
    // 向socket发送 trigger_send事件,带上 发送的内容 以及 当事人名字 和 头像
    socket.emit('trigger_send', { content, username, avatar });
})

// 从服务器接受自己或别人发送的消息
socket.on('send', (data) => {
    let message;
    // 自己发的消息
    if (username === data.username) {
        message = ` <div class="self">
                    <div class="avatr" style="background-image: url('${data.avatar}'); background-size: cover;"></div>
                    <div class="username">${data.username}</div>
                    <div class="content" style="background-color: rgb(22, 170, 22); color:white">${data.content}</div>
                    </div>`;
    } else {
        // 别人发的消息
        message = ` <div class="user">
                    <div class="avatr" style="background-image: url('${data.avatar}'); background-size: cover;"></div>
                    <div class="username">${data.username}</div>
                    <div class="content">${data.content}</div>
                    </div>`;
    }
    // 添加消息
    $('.chat').append(message);
    // 清空输入内容
    $('.message_content').val('');
    // 滚动到最下面
    $('.chat').children(':last')[0].scrollIntoView();
})
